package com.promise.jokerdream.response.parser

import com.promise.jokerdream.response.phone.LatestActXmlResponse
import org.jsoup.Jsoup

// 最新的活动信息
class LatestActXmlParser: BaseXmlParser<LatestActXmlResponse>() {
    
    /**
     * 解析最新活动XML数据
     * @param xmlString XML字符串
     * @return 解析结果
     */
    fun parseLatestActXml(xmlString: String): XmlParseResult<LatestActXmlResponse> {
        return parseXml(xmlString)
    }
    
    override fun doParse(xmlString: String): LatestActXmlResponse {
        return try {
            // 统一替换<br />为<br/>，确保Jsoup能正确识别
            val normalizedXml = xmlString.replace(Regex("<br\\s*/?>"), "<br/>")
            val doc = Jsoup.parse(normalizedXml)
            val divElement = doc.selectFirst("div#id")
            
            if (divElement != null) {
                val pElement = divElement.selectFirst("p")
                if (pElement != null) {
                    val html = pElement.html()
                    
                    // 使用<br/>进行分割
                    val parts = html.split(Regex("<br\\s*/?>"))
                    
                    // 查找包含"活动"的部分
                    for (part in parts) {
                        if (part.contains("活动")) {
                            // 提取"活动"后面的内容，跳过冒号
                            val content = part.substringAfter("活动")
                                .substringAfter(":") // 跳过冒号
                                .replace(Regex("<[^>]+>"), "") // 移除HTML标签
                                .replace(Regex("\\s+"), " ") // 合并多个空格
                                .trim()
                            
                            // 按链接分割活动列表
                            val actList = content.split(Regex("\\s+"))
                                .filter { it.isNotEmpty() }
                                .toList()
                            
                            return LatestActXmlResponse(
                                actionResult = content,
                                actList = actList
                            )
                        }
                    }
                }
            }
            
            // 如果没有找到活动信息，返回空结果
            LatestActXmlResponse(
                actionResult = "",
                actList = emptyList()
            )
        } catch (e: Exception) {
            LatestActXmlResponse(
                actionResult = "",
                actList = emptyList()
            )
        }
    }
}